The present invention relates to a method of managing a volume in a computer system that includes multiple storage subsystems.
In recent years, storage network structures have been used in which multiple servers, multiple storage subsystems, backup devices and the like are connected by switches, hubs, etc. These are chiefly called SANs (Storage Area Networks). The advantages obtained by building a computer system with a storage network include excellent scalability, and reduced administrative costs are achieved by enabling integrated management of data that is dispersed across multiple storage subsystems.
Furthermore, when using large-scale storage subsystems—i.e., most notably for disk array subsystems—managing means are provided for creating volumes to store information (i.e., data and programs) to be used by host computers inside the storage system. However, the managing means for creating the volumes use different interfaces and different formats for making requests, depending on the vendor that created the storage subsystem. Therefore, when a storage subsystem made by a different vendor is introduced to the system, the administrator of the storage subsystems needs to be able to remember the interfaces and request the formats used by each vendor. In a large-scale scale computer system, this causes significant problems. In order to overcome these problems, the DMTF (Distributed Management Task Force) has created a CIM (Common Information Model) and WBEM (Web-Based Enterprise Management). These standards determine the interface and request formats to be used when creating a volume in a storage subsystem. For example, “Device27_StorageServices.mof v.2.7.1” in Device Storage Services 2.7 was released. By using the interface defined in the CIM, a volume can be created according to a uniform method even in storage subsystems made by different vendors. The CIM definitions stipulate that “hints” are to be used in the interface and request formats when creating volumes.
(extracted from Device27_StorageServices.mof)
//======================================================// StorageSettingWithHints//======================================================[Experimental, Version(“2.7.1”), Description ( “This subclass of StorageSetting allows a client to specify ” “‘hint's for optimization of the volume performance. The effect ” “of these hints is implementation dependent.”) ]class CIM_StorageSettingWithHints: CIM_StorageSetting { [MinValue (0), MaxValue (10), Description (  “This hint is an indication from a client of the importance ”  “placed on data availability. Values are 0=Don't Care to ”  “10=Very Important.”) ] uint16 DataAvailabilityHint; [MinValue (0), MaxValue (10), Description (  “This hint is an indication from a client of the randomness ”  “of accesses. Values are 0=Entirely Sequential to ”  “10=Entirely Random.”) ] uint16 AccessRandomnessHint; [MinValue (0), MaxValue (10), Description (  “This hint is an indication from a client of the direction ”  “of accesses. Values are 0=Entirely Read to ”  “10=Entirely Write.”) ] uint16 AccessDirectionHint; [Description (  “This hint is an indication from a client of the optimal ”  “access sizes. Several sizes can be specified.”),  Units (“MegaBytes”) ] uint16 AccessSizeHint[ ]; [MinValue (0), MaxValue (10), Description (  “This hint is an indication from a client how important ”  “access latency is. Values are 0=Don't Care to ”  “10=Very Important.”) ] uint16 AccessLatencyHint; [MinValue (0), MaxValue (10), Description (  “This hint is an indication from a client of bandwidth ”  “prioritization. Values are 0=Don't Care to ”  “10=Very Important.”) ] uint16 AccessBandwidthWeight; [MinValue (0), MaxValue (10), Description (  “This hint is an indication of the importance the client ”  “places on the cost of storage. Values are 0=Don't Care to ”  “10=Very Important. A StorageVolume provider might choose ”  “to place data on low cost or high cost drives based on ”  “this parameter.”) ] uint16 StorageCostHint; [MinValue (0), MaxValue (10), Description (  “This hint is an indication of the importance placed on ”  “storage efficiency by the client. Values are 0=Don't Care ”  “to 10=Very Important. A StorageVolume provider might choose ”  “different RAID levels based on this hint.”) ] uint16 StorageEfficiencyHint;};
Using these “hints” enables the volume to be made with abstract designations. This allows the volumes to be created with a uniform request format even when the hardware structure of each vendor's storage subsystem is completely different.
Japanese Patent Application Laid-open No. 2003-140836 discloses a method which is used to enable the distribution of a volume among multiple storage subsystems in the SAN environment to be optimized easily by having the administrator redistribute the volume. This volume management method is summarized as follows:
Multiple storage subsystems that are connected to a SAN environment are classified into multiple groups (classes), or multiple disk devices that constitute the storage subsystems are classified into multiple groups (classes); and, for each of these classes, class attributes are configured (i.e., threshold values for usage of the storage subsystems). Either a SAN management server that is connected to the SAN, or a server utilizing the volumes in the storage subsystems, obtains from the multiple storage subsystems vendor information indicating the vendor of the storage subsystem (i.e., manufacturer information), usage status information, and class attributes. In order to redistribute the volume in a first class to an appropriate volume in a second class, the volume in the second class is selected based on the vendor information (manufacturer information), the usage status information, and the class attribute information. Then, data in the first volume is copied into the second volume, and the correspondence for keeping track of the volume is changed from the first volume to the second volume to achieve redistribution.
In accordance with the volume redistribution method disclosed in Japanese Patent Application Laid-open No. 2003-140836, the volume migrates across classes or within the same class based on the usage status information which is determined per class, the class attributes, and the storage subsystem's vendor information.
However, there is no disclosure of migrating a volume among the multiple storage subsystems that are connected to the network. Furthermore, even when each vendor's storage subsystems have different storage structures, the hints still enable the creation of volumes with uniform request formats; however, even if the same values are defined for the hints, there are many cases where the properties that are actually exhibited by the devices in correspondence to these values will be different in different storage subsystems produced by different vendors and the like. Therefore, when dealing with a volume that in multiple storage subsystems, it is difficult for the administrator to use the hints as a way to allocate the volumes to effectively utilize the resources.